/**
 * User: Obi
 * Date: 02.08.11
 * Time: 21:38
 */
package com.jediflasher.game_client.view {
	import com.jediflasher.game_client.data.BaseData;

	import flash.display.Sprite;
	import flash.events.Event;

	public class BaseView extends Sprite {

		public function BaseView(data:BaseData) {
			super();
			this._data = data;

			if (!stage) super.addEventListener(Event.ADDED_TO_STAGE, this.render);
			else this.render();

			super.addEventListener(Event.REMOVED_FROM_STAGE, this.clear);
		}

		/**
		 * @private
		 */
		protected var _data:BaseData;

		/**
		 * Вызывается при добавлении объекта на сцену
		 * @return true, если успешно отрендерилось
		 */
		public function render(event:Event = null):Boolean {
			if (this.stage) {
				this.stage.addEventListener(Event.RESIZE, this.render);
				return true;
			}
			else return false;
		}

		/**
		 * Вызывается при удалении со сцены
		 */
		public function clear(event:Event = null):void {
			if (this.stage) {
				this.stage.removeEventListener(Event.RESIZE, this.render);
			}
		}
	}
}
